## Warning: package 'tidyverse' was built under R version 3.5.1
## -- Attaching packages --------------------------------------------------------------------- tidyverse 1.2.1 --
## v ggplot2 3.0.0     v purrr   0.2.4
## v tibble  1.4.2     v dplyr   0.7.4
## v tidyr   0.8.1     v stringr 1.3.0
## v readr   1.1.1     v forcats 0.3.0
## Warning: package 'ggplot2' was built under R version 3.5.1
## Warning: package 'readr' was built under R version 3.5.1
## Warning: package 'forcats' was built under R version 3.5.1
## -- Conflicts ------------------------------------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
## Warning: package 'plotly' was built under R version 3.5.1
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
## Parsed with column specification:
## cols(
##   nomeParlamentar = col_character(),
##   idCadastro = col_integer(),
##   sgUF = col_character(),
##   sgPartido = col_character(),
##   tipoDespesa = col_character(),
##   especDespesa = col_character(),
##   fornecedor = col_character(),
##   CNPJCPF = col_character(),
##   tipoDocumento = col_integer(),
##   dataEmissao = col_datetime(format = ""),
##   valorDocumento = col_double(),
##   valorGlosa = col_integer(),
##   valorLíquido = col_double()
## )

Quais são os deputados que gastaram mais dinheiro da CEAP? Quais são os mais econômicos

Primeiro precisamos remover os valores líquidos negativos e aqueles valores que não representam deputados. Para isso, utilizo o filter e extraio apenas os resultados válidos. Em seguida, agrupo os parlamentares e extraio a soma dos valores líquidos com as funções group_by e summarise, respectivamente. Por fim, realizo um ordenamento para os dez valores mais altos de gastos e os dez valores mais baixos para construção do gráfico.

gastosDeputados <- 
  dados %>%
  filter(!is.na(idCadastro) & valorLíquido >= 0) %>% 
  group_by(nomeParlamentar) %>%
  summarise(gasto = sum(valorLíquido))
deputadosGastadores <- 
  gastosDeputados %>%
  arrange(desc(gasto)) %>%
  slice(1:10)
deputadosEconomicos <-
  gastosDeputados %>%
  arrange(gasto) %>%
  slice(1:10)

plot_ly(deputadosGastadores, y =~ gasto, x =~ reorder(nomeParlamentar, gasto), marker = list(color = "#99d8c9")) %>%
        layout(title = "Deputados que mais gastaram", yaxis = list(title = "R$"), xaxis = list(title ="", tickangle = -90))
## No trace type specified:
##   Based on info supplied, a 'bar' trace seems appropriate.
##   Read more about this trace type -> https://plot.ly/r/reference/#bar
plot_ly(deputadosEconomicos, y =~ gasto, x =~ reorder(nomeParlamentar, gasto), marker = list(color = "#99d8c9")) %>%
        layout(title = "Deputados que menos gastaram", yaxis = list(title = "R$"), xaxis = list(title ="", tickangle = -90))
## No trace type specified:
##   Based on info supplied, a 'bar' trace seems appropriate.
##   Read more about this trace type -> https://plot.ly/r/reference/#bar

Quais os estados cujos deputados gastam mais no exterior? Quais os estados cujos deputados gastam menos no exterior?

A questão é semelhante a anterior, só que o foco agora é filtrar os documentos que remetam ao uso do auxílio no exterior. Para fazer isso basta filtrar os resultados que tenham 2 no campo tipoDocumento e agrupar o resultado por meses. Depois ordenamos os valores e selecionamos apenas os maiores e menores.

gastosExterior <- 
  dados %>%
  filter(tipoDocumento == 2 & valorLíquido >= 0 & !is.na(idCadastro)) 
gastosUFTotais <-
  gastosExterior %>% 
  group_by(sgUF) %>%
  summarise(gasto = sum(valorLíquido))
maisGastos <- 
  gastosUFTotais %>%
  arrange(desc(gasto)) %>%
  slice(1:10)
menosGastos <-
  gastosUFTotais %>%
  arrange(gasto) %>%
  slice(1:10)

plot_ly(maisGastos, y =~ gasto, x =~ reorder(sgUF, gasto), marker = list(color = "#99d8c9")) %>%
        layout(title = "Estados que mais gastaram no exterior", yaxis = list(title = "R$"), xaxis = list(title ="", tickangle = -90))
## No trace type specified:
##   Based on info supplied, a 'bar' trace seems appropriate.
##   Read more about this trace type -> https://plot.ly/r/reference/#bar
plot_ly(menosGastos, y =~ gasto, x =~ reorder(sgUF, gasto), marker = list(color = "#99d8c9")) %>%
        layout(title = "Estados que menos gastaram", yaxis = list(title = "R$"), xaxis = list(title ="", tickangle = -90))
## No trace type specified:
##   Based on info supplied, a 'bar' trace seems appropriate.
##   Read more about this trace type -> https://plot.ly/r/reference/#bar

Quais os partidos cujos parlamentares mais usam CEAP no estado da Paraíba? Quais são os que menos usam? Mesmas perguntas considerando valores em R$. (7,5 pts)

Nessa atividade, foi preciso filtrar os dados da Paraíba e depois agrupar os partidos. Em seguida, foi feito uma soma dos valores dos montantes líquidos e a soma da quantidade de registros feitos pelos partidos. Dessa forma, podemos elencar os partidos mais e menos economicos. O gráfico abaixo representa o somatório dos gastos em reais e em quantidade absoluta, horizontalmente e verticalmente, respectivamente.

partidosGastos <- 
  dados %>%
  filter(sgUF == "PB") %>% 
  group_by(sgPartido) %>%
  summarise(gasto = sum(valorLíquido), quantidade = n()) 

partidosPBGastadores <- 
  partidosGastos %>%
  arrange(desc(gasto)) %>%
  slice(1:5)
partidosPBEconomizadores <-
  partidosGastos %>%
  arrange(gasto) %>%
  slice(1:5)

plot_ly(data = partidosGastos, x = ~gasto, y = ~quantidade, text = ~paste("Partido: ", sgPartido)) %>%
        layout(title = "Gasto de deputados (por estado) no exterior", yaxis = list(title = "Quantidade de Auxílios Utilizados"), xaxis = list(title ="Montante em R$"))
## No trace type specified:
##   Based on info supplied, a 'scatter' trace seems appropriate.
##   Read more about this trace type -> https://plot.ly/r/reference/#scatter
## No scatter mode specifed:
##   Setting the mode to markers
##   Read more about this attribute -> https://plot.ly/r/reference/#scatter-mode

Quais os deputados que mais ultrapassam o limite de CEAP do seu estado? Os dados com os limites de CEAP por estado estão disponíveis neste link. (7,5 pts)

Essa foi a atividade mais difícil a ser resolvida. Inicialmente converti as datas para o formato mês-ano para que conseguisse extrair o gasto mensal. Posteriormente, agrupei os estados, meses e parlamentares para que fosse feito a soma de quanto cada parlamentar gastou em cada mês. Depois comparei o resultado de cada mês com o limite mensal que foi importado e convertido para outro formato para facilitar a comparação. Nessa conversão, troquei os valores de UF por valores de coluna de forma a ter uma espécie de dicionário com chaves (siglas das UFs) e valores (limite mensal). Extraindo os depultados que extrapolaram o limite mensal, contabilizei a quantidade de vezes que foi extrapolado e ordenei os que mais ultrapassaram o limite. Por fim, removi os resultados repetidos de cada estado, sobrando assim apenas o mais extrapolador.

limite <- read_csv("limiteMensalCEAP.csv") %>% 
  spread(UF, limite_mensal)
## Parsed with column specification:
## cols(
##   UF = col_character(),
##   limite_mensal = col_double()
## )
gastosDeputadosMensais <- 
  dados %>%
  filter(!is.na(dataEmissao) & !is.na(sgUF)) %>% 
  mutate(dataEmissao =   format(as.POSIXct(dataEmissao),"%Y-%m")) %>% 
  
  group_by(dataEmissao, nomeParlamentar, idCadastro, sgUF) %>%
  summarise(gasto = sum(valorLíquido)) %>% 
  filter(gasto >= limite[sgUF]) %>% 
  group_by(nomeParlamentar, sgUF) %>% 
  summarise(quantidade = n(), gasto = sum(gasto)) %>% 
  arrange(desc(quantidade))
gastosDeputadosMensais <- gastosDeputadosMensais[!duplicated(gastosDeputadosMensais$sgUF), ]

plot_ly(gastosDeputadosMensais, x = ~gasto, y = ~quantidade, text = ~paste("Parlamentar: ", nomeParlamentar, "<br>Estado:", sgUF)) %>%
        layout(title = "Deputados que mais extrapolaram o teto do seu estado", yaxis = list(title = "Quantidade de Auxílios Utilizados"), xaxis = list(title ="Montante em R$"))
## No trace type specified:
##   Based on info supplied, a 'scatter' trace seems appropriate.
##   Read more about this trace type -> https://plot.ly/r/reference/#scatter
## No scatter mode specifed:
##   Setting the mode to markers
##   Read more about this attribute -> https://plot.ly/r/reference/#scatter-mode

Quais estados cujos parlamentares gastam mais com passagens aéreas? (7,5 pts)

Primeiro filtrei as despesas com emissão de bilhete aéreo, depois agrupei com os estados. Por fim, realizei uma soma dos valores líquidos dos gastos para obter o resultado.

estadosPassagens <- 
  dados %>%
  filter(tipoDespesa == "Emissão Bilhete Aéreo") %>% 
  group_by(sgUF) %>%
  summarise(gasto = sum(valorLíquido))

plot_ly(estadosPassagens, y =~ gasto, x =~ reorder(sgUF, gasto), marker = list(color = "#99d8c9")) %>%
        layout(title = "Estados que mais gastaram com passagens aéreas", yaxis = list(title = "R$"), xaxis = list(title ="Estados", tickangle = -90))
## No trace type specified:
##   Based on info supplied, a 'bar' trace seems appropriate.
##   Read more about this trace type -> https://plot.ly/r/reference/#bar

Escolha três partidos e responda: Quais são os tipos de despesa mais utilizados no uso da CEAP pelos deputados desses partidos? Mesma pergunta considerando valores em R$.

Escolhi os partidos PT, PSDB e PMDB. Realizei o filtro nos dados para eliminar os outros partidos. Em seguida, agrupei os valores dos partidos realizando a sumarização com a soma dos gastos e a quantidade em cada tipo de despesa. Para finalizar, dividi os resultados por quantidade e por montante e criei o gráfico abaixo com o resultado obtido do montante de cada partido.

partidos <- c("PT", "PSDB", "PMDB")

partidosDespesas <- 
  dados %>%
  filter(sgPartido %in% partidos) %>% 
  group_by(sgPartido, tipoDespesa) %>% 
  summarise(gasto = sum(valorLíquido), quantidade = n()) %>% 
  group_by(sgPartido, tipoDespesa) %>% 
  summarise(gasto = sum(gasto), quantidade = sum(quantidade))

# Nesse resultado estamos levando em consideração apenas a quantidade de auxílios registrados
partidosPorQuantidade <-
  partidosDespesas %>% 
  arrange(desc(quantidade))
partidosPorQuantidade <- partidosPorQuantidade[!duplicated(partidosPorQuantidade$sgPartido), ]
  
# Nesse resultado estamos levando em consideração apenas a soma
partidosPorMontante <-
  partidosDespesas %>% 
  arrange(desc(gasto))
partidosPorMontante <- partidosPorMontante[!duplicated(partidosPorMontante$sgPartido), ]

# Para o gráfico, usarei apenas o montante
graficoDado <-
  partidosPorMontante %>% 
  spread(sgPartido, gasto)

plot_ly(graficoDado, x = ~tipoDespesa, y = ~PMDB, type = 'bar', name = 'PMDB') %>%
  add_trace(y = ~PSDB, name = 'PSDB') %>%
  add_trace(y = ~PT, name = 'PT') %>%
  layout(yaxis = list(title = 'Quantidade em Reais'), xaxis = list(title = 'Tipo de Despesa'), barmode = 'group')
## Warning: Ignoring 2 observations

## Warning: Ignoring 2 observations

## Warning: Ignoring 2 observations